#ifndef MODEL_PROJECT_HPP
#define MODEL_PROJECT_HPP

#include "Model/CaseEntity.hpp"
#include "Model/Package.hpp"

namespace Model
{

	// TODO: Document
class MODEL_API Project: public CaseEntity
{
public:
	/// @brief It creates a new project.
	Project( const std::string& name, const std::string& description);

	Project( const boost::any& projectID, const std::string& name, const std::string& description);

	const std::string& name() const { return name_; }
	void setName( const std::string& name) { name_ = name; }
	const std::string& description() const { return description_; }
	void setDescription( const std::string& newDescription) { description_ = newDescription; }

	const Package& rootPackage() const { return rootPackage_; }
	Package& rootPackage() { return rootPackage_; }
private:
	std::string name_;
	std::string description_;
	Package rootPackage_;
};

} // namespace Model

#endif // MODEL_PROJECT_HPP
